﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Telerik.Windows.Controls;
using Kaesoft.Hospedaje.Entities;

namespace Kaesoft.Hospedaje.Admin
{
    public partial class ArbolOpcionesPerfil : UserControl
    {
        
        ArbolOpcionesPerfilViewModel viewmodel;
        readonly List<RadTreeViewItem> _items = new List<RadTreeViewItem>();
        RadTreeViewItem _itemSeleccionado;
        public ArbolOpcionesPerfil()
        {
            InitializeComponent();
            Loaded += ArbolOpciones_Loaded;
        }
        void ArbolOpciones_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            if (DataContext is ArbolOpcionesPerfilViewModel)
            {
                viewmodel = (ArbolOpcionesPerfilViewModel)DataContext;
            }

        }
        private void rtvGruposTipos_ItemPrepared(object sender, RadTreeViewItemPreparedEventArgs e)
        {
            RadTreeViewItem item = e.PreparedItem;
            if (!_items.Contains(item))
            {
                _items.Add(item);
            }
            if (item.Item is Arbol && ((Arbol)item.Item).Entidad is CatalogoSummary)
                item.IsLoadOnDemandEnabled = false;
        }

        private void rtvGruposTipos_LoadOnDemand(object sender, Telerik.Windows.RadRoutedEventArgs e)
        {
            var trv = sender as RadTreeView;
            _itemSeleccionado = e.OriginalSource as RadTreeViewItem;

            if (_itemSeleccionado != null && ((Arbol)_itemSeleccionado.Item).Entidad is Opcion)
            {
                ((ArbolOpcionesPerfilViewModel)DataContext).CargarOpcionPorId((Arbol)_itemSeleccionado.Item);// funcion que carga el siguiente nivel del arbol
            }

            ((ArbolOpcionesPerfilViewModel)DataContext).EventoSinDatos += (objSender, ev) =>
            {
                _itemSeleccionado.IsLoadOnDemandEnabled = false;
            };
        }
    }
}
